package com.ntd.study.base.java8.optional;

import cn.hutool.core.lang.Console;

import java.util.Optional;

public class OptionalStudy {
    public static void main(String[] args) {
        Object obj = new String("123");
        final Object person为null = Optional.ofNullable(obj).orElse("person为null");
        Console.log(person为null);
    }

    void study() {
        Optional<String> optEmpty = Optional.empty(); // 1、创建一个包装对象值为空的Optional对象
        Optional<String> optOf = Optional.of("optional"); // 2、创建包装对象值非空的Optional对象
        Optional<String> optOfNullable1 = Optional.ofNullable(null); // 3、创建包装对象值允许为空也可以不为空的Optional对象
        Optional<String> optOfNullable2 = Optional.ofNullable("optional");
        final String s = optOf.get(); // 返回对象的值
        final boolean present = optOf.isPresent(); // 是否为空
        optOf.ifPresent(data -> {
        }); // 判断不为空执行函数
        optOf.filter(data -> "optional".equals(data)); // 条件过滤 - 符合条件返回Optional对象 - 不符合条件返回空Optional对象
        optOf.map(data -> "123" + data); // 对象二次封装 - 包装成一个新对象
        optOf.orElseGet(() -> "123456"); // 为空则返回这个值
        optOf.orElseThrow(); // 为空抛出异常


    }
}
